﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace OPM.Models
{
    public class ComplaintModel
    {
        /// <summary><param name="objective_id">***รหัสวัตถุประสงค์ของการแจ้งเรื่อง</param></summary>
        public string objective_id { get; set; }

        /// <summary><param name="type_id">***รหัสประเภทของการแจ้งเรื่อง ซึ่งเป็นประเภทเรื่องของทาง สปน.</param></summary>
        public string type_id { get; set; }

        /// <summary><param name="terminal_type_id">รหัสประเภทของการแจ้งเรื่อง สำหรับหน่วยงานปลายทาง เป็นค่าว่างได้</param></summary>
        public string terminal_type_id { get; set; }

        /// <summary><param name="status_id">***รหัสสถานะของเรื่อง เป็นค่าว่างได้</param></summary>
        public string status_id { get; set; }

        /// <summary><param name="date_opened">***วันที่เปิดเรื่อง รูปแบบ yyyy-MM-dd hh:mm:ss</param></summary>
        public DateTime date_opened { get; set; }

        /// <summary><param name="date_closed">วันที่ปิดเรื่อง รูปแบบ yyyy-MM-dd hh:mm:ss เป็นค่าว่างได้</param></summary>
        public DateTime? date_closed { get; set; }

        /// <summary><param name="channel_incoming_id">***รหัสช่องทางการรับเรื่อง</param></summary>
        public string channel_incoming_id { get; set; }

        /// <summary><param name="call_back">***T/F หากต้องการติดต่อกลับให้ใช้ T</param></summary>
        public string call_back { get; set; }

        /// <summary><param name="channel_outgoing_id">รหัสช่องทางการติดต่อกลับ (หากต้องการให้ติดต่อกลับ จำเป็นจะต้องระบุช่องทางด้วย)</param></summary>
        public string channel_outgoing_id { get; set; }

        /// <summary><param name="summary">***สรุปข้อมูลเรื่องที่แจ้งจากประชาชน</param></summary>
        public string summary { get; set; }

        /// <summary><param name="detail">***รายละเอียดของเรื่องร้องเรียน ร้องทุกข์</param></summary>
        public string detail { get; set; }

        /// <summary><param name="defendent">ชื่อ/หน่วยงาน ผู้ถูกร้องเรียน</param></summary>
        public string defendent { get; set; }

        /// <summary><param name="date_occurrenced_from">วันที่เกิดเหตุ รูปแบบ yyyy-MM-dd hh:mm:ss</param></summary>
        public DateTime? date_occurrenced_from { get; set; }

        /// <summary><param name="date_occurrenced_to">วันที่เกิดเหตุ รูปแบบ yyyy-MM-dd hh:mm:ss</param></summary>
        public DateTime? date_occurrenced_to { get; set; }

        /// <summary><param name="time_occurrenced">ช่วงเวลาที่เกิดเหตุ ระบุเป็นข้อความ เช่น 12:00 หรือเที่ยงวัน</param></summary>
        public string time_occurrenced { get; set; }

        /// <summary><param name="case_area">พื้นที่เกิดเหตุ เช่น บ้านเลขที่, สถานที่สำคัญ, สถานที่ใกล้เคียง</param></summary>
        public string case_area { get; set; }

        /// <summary><param name="subdistrict_id">รหัสตำบล</param></summary>
        public string subdistrict_id { get; set; }

        /// <summary><param name="district_id">รหัสอำเภอ</param></summary>
        public string district_id { get; set; }

        /// <summary><param name="province_id">รหัสจังหวัด</param></summary>
        public string province_id { get; set; }

        /// <summary><param name="postcode">รหัสไปรษณีย์</param></summary>
        public string postcode { get; set; }

        /// <summary><param name="latitude">ค่าพิกัด Latitude ที่เกิดเหตุ</param></summary>
        public string latitude { get; set; }

        /// <summary><param name="longitude">ค่าพิกัด Longitude ที่เกิดเหตุ</param></summary>
        public string longitude { get; set; }

        /// <summary><param name="case_value">มูลค่าความเสียหายที่เกิดขึ้น หากไม่มีก็ระบุเป็น 0 กรณีที่ระบุ ให้ระบุเป็นตัวเลขมาให้ระบบ</param></summary>
        public int case_value { get; set; }

        /// <summary><param name="is_in_court">***อยู่ในการพิจารณาคดีในชั้นศาลหรือไม่ T=อยู่ในการพิจารณาคดี/F=ไม่อยู่ในการพิจารณาคดี</param></summary>
        public is_in_court_enum is_in_court { get; set; }

        /// <summary><param name="remark">อื่น ๆ/หมายเหตุ</param></summary>
        public string remark { get; set; }

        /// <summary><param name="is_secret">***T=ต้องการปกปิด/F=สามารถเปิดเผยข้อมูลได้</param></summary>
        public is_secret_enum is_secret { get; set; }

        /// <summary><param name="priority_id">***รหัสระดับความสำคัญ</param></summary>
        public string priority_id { get; set; }

        /// <summary><param name="severity_id">***รหัสระดับความเร่งด่วน</param></summary>
        public string severity_id { get; set; }

        /// <summary><param name="secret_id">***รหัสระดับชั้นความลับ</param></summary>
        public string secret_id { get; set; }

        /// <summary><param name="org_master_id">***รหัสหน่วยงานหลัก Case Manager</param></summary>
        public string org_master_id { get; set; }

        /// <summary><param name="org_id">รหัสหน่วยงานรอง (Array) ที่เลือกเข้ามาร่วมดำเนินการแก้ไขปัญหา</param></summary>
        public string[] org_id { get; set; }

        public enum is_in_court_enum
        {
            //อยู่ในการพิจารณาคดีในชั้นศาลหรือไม่ 
            T, //=อยู่ในการพิจารณาคดี/
            F //=ไม่อยู่ในการพิจารณาคดี
        }

        public enum is_secret_enum
        {
            T, //= ต้องการปกปิด / 
            F // = สามารถเปิดเผยข้อมูลได้
        }

        public enum call_back_enum
        {
            T, // หากต้องการติดต่อกลับให้ใช้ T
            F
        }
    }
}